import { compileFunction } from "./compiler/index";
import { initState } from "./state";

export function initMixin(Vue) {
    Vue.prototype._init = function (options) {
        const vm = this;
        vm.$options = options;

        initState(vm);
        if (options.el) {
            vm.$mount(options.el);
        }
    }

    Vue.prototype.$mount = function (el) {
        const vm = this;
        el = document.querySelector(el);
        let ops = vm.$options;
        if (!ops.render) {
            let template;
            if (!ops.template && el) {
                template = el.outerHTML;
            } else {
                if (el) {
                    template = ops.template;
                }
            }
            if (template) {
                const render = compileFunction(template);
                ops.render = render;
            }
        }
        ops.render;
        //script 标签引用的vue.global.js 这个编译过程是在浏览器运行的
        //runtime 是不包含模版编译的，整个编译打包是通过loader来转义，用runtime不能使用template
    }
}


